<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>DSF2FLAC: DsdiffFileReader Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">DSF2FLAC
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">DsdiffFileReader Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="DsdiffFileReader" --><!-- doxytag: inherits="DsdSampleReader" -->
<p>This class extends dsdSampleReader providing access to dsf samples and other info from dsdff files.  
 <a href="classDsdiffFileReader.html#details">More...</a></p>

<p><code>#include &lt;dsdiff_file_reader.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for DsdiffFileReader:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classDsdiffFileReader.png" usemap="#DsdiffFileReader_map" alt=""/>
  <map id="DsdiffFileReader_map" name="DsdiffFileReader_map">
<area href="classDsdSampleReader.html" title="Abstract class defining anything which reads dsd samples from something." alt="DsdSampleReader" shape="rect" coords="0,0,116,24"/>
</map>
 </div></div>

<p><a href="classDsdiffFileReader-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#aa0adb8a6cd5619dc8504d0e7fb46d4cc">DsdiffFileReader</a> (char *filePath)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class constructor.  <a href="#aa0adb8a6cd5619dc8504d0e7fb46d4cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#af5690204747c5f304ca42f59e634cb93">~DsdiffFileReader</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class destructor.  <a href="#af5690204747c5f304ca42f59e634cb93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#aeea5846208fe880fd916dd0ddd74db6a">step</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Step the reader forward by 8 DSD samples.  <a href="#aeea5846208fe880fd916dd0ddd74db6a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#af5059434a5bcc0afe6dd3440a962b4da">rewind</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the reader position back to the start of the DSD data.  <a href="#af5059434a5bcc0afe6dd3440a962b4da"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a944d14bf6a78cd224f029c48e5372ead">getLength</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the total number of DSD samples in the reader.  <a href="#a944d14bf6a78cd224f029c48e5372ead"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a0be5c607cc8210b628ae3cb33d2f1a3a">getNumChannels</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of channels in the reader.  <a href="#a0be5c607cc8210b628ae3cb33d2f1a3a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#aea643e18182f246efa102ca0e22808c8">getSamplingFreq</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the DSD sampling rate of this reader (Hz).  <a href="#aea643e18182f246efa102ca0e22808c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a307362407ad6cf451accb690132d8555">msbIsPlayedFirst</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes the order that the samples are packed into the int8 buffer entries.  <a href="#a307362407ad6cf451accb690132d8555"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a03be29bcbf7c1245280255b7a6be9d9c">samplesAvailable</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns false if there are no more samples left in the reader.  <a href="#a03be29bcbf7c1245280255b7a6be9d9c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">ID3_Tag&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a6156d23729436b5d861121576d684908">getID3Tag</a> (dsf2flac_uint32 trackNum)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the ID3 tag corresponding to the provided track number.  <a href="#a6156d23729436b5d861121576d684908"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a3ddd8292bd0d2666009e44b7dd9d2474">getNumTracks</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of audio tracks in the reader.  <a href="#a3ddd8292bd0d2666009e44b7dd9d2474"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#aae619f113c088885ab00befa2fcb9778">getTrackStart</a> (dsf2flac_uint32 trackNum)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the start position of the specified track.  <a href="#aae619f113c088885ab00befa2fcb9778"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a4c6eefc2cc805e63c14482602a896534">getTrackEnd</a> (dsf2flac_uint32 trackNum)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the end position of the specified track.  <a href="#a4c6eefc2cc805e63c14482602a896534"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a75c8838e87394622483a549e70a1ad6f">dispFileInfo</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be called to display some useful info to stdout.  <a href="#a75c8838e87394622483a549e70a1ad6f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#af38ca8dd15acd893825877655eaff344">isValid</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return false if the reader is invalid (format/file error for example).  <a href="#af38ca8dd15acd893825877655eaff344"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a55a93bdd363ad0caf9cd53d118faaed0">getErrorMsg</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a message explaining why the reader is invalid.  <a href="#a55a93bdd363ad0caf9cd53d118faaed0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a03a1ccf5fe2002951958b1a0315c0c17">getLengthInSeconds</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the total length of the reader in seconds.  <a href="#a03a1ccf5fe2002951958b1a0315c0c17"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#aa4146b9597508d0d0cba9687cac10b0a">getPosition</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current position of the reader in DSD samples.  <a href="#aa4146b9597508d0d0cba9687cac10b0a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#ac9602a1a4068718248603510360d5a69">getPositionInSeconds</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current position of the reader in seconds.  <a href="#ac9602a1a4068718248603510360d5a69"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_float64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a482617bc01d3fd23d40ae5c6cccda769">getPositionAsPercent</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current position of the reader as a percent of the total length.  <a href="#a482617bc01d3fd23d40ae5c6cccda769"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">boost::circular_buffer<br class="typebreak"/>
&lt; dsf2flac_uint8 &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#af89cd94df23fbc7a14f4693d41e559d9">getBuffer</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an array of circular buffers, one for each track.  <a href="#af89cd94df23fbc7a14f4693d41e559d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">dsf2flac_uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a4047cf0d1e5509d09954b844e57194b5">getBufferLength</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the buffers (the number of uint8 numbers, NOT the number of DSD samples).  <a href="#a4047cf0d1e5509d09954b844e57194b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a5853c6883b69c0e7431393b3af217579">setBufferLength</a> (dsf2flac_uint32 bufferLength)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the length of the buffers (the number of uint8 numbers, NOT the number of DSD samples).  <a href="#a5853c6883b69c0e7431393b3af217579"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">ID3_Tag&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a10bc171b055f01dbfd8fdc13c8f29e05">getID3Tag</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the ID3 tag of the first track in this reader.  <a href="#a10bc171b055f01dbfd8fdc13c8f29e05"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual dsf2flac_uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a57314cc6f55aa3b1302c4c6f2e1089d9">getIdleSample</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the idle tone used by this reader, by default the buffers are populated with this idle tone.  <a href="#a57314cc6f55aa3b1302c4c6f2e1089d9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a54998d3ac12b20f0b30c4e781d266b19">latin1_to_utf8</a> (char *latin1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">convert latin1 encoded char into utf8.  <a href="#a54998d3ac12b20f0b30c4e781d266b19"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a1a06abf0beea3efbedf16fbbf46efc74">allocateBuffer</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates the circular buffers.  <a href="#a1a06abf0beea3efbedf16fbbf46efc74"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdSampleReader.html#a4985ec156a185ee79da43eaceb5f78f7">clearBuffer</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the buffers and fill with idleSample.  <a href="#a4985ec156a185ee79da43eaceb5f78f7"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a8c08e845b86f0b9f5a397b1469a98b5c">allocateSampleBuffer</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate the buffer to hold samples.  <a href="#a8c08e845b86f0b9f5a397b1469a98b5c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#aa3242abb25a60ef60a3e1f20f7e69d38">readNextBlock</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the next block of samples into the buffer.  <a href="#aa3242abb25a60ef60a3e1f20f7e69d38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#ae1167ce39c5e9b74d1c2a57536f497c4">processTracks</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the number, start and end points of the tracks in the file.  <a href="#ae1167ce39c5e9b74d1c2a57536f497c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#aef926427dbd6f49d3e6be519283c8ac1">readChunkHeader</a> (dsf2flac_int8 *ident, dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A little helper to read chunk headers info.  <a href="#aef926427dbd6f49d3e6be519283c8ac1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a063c59ae6482ddeea78dba58ecd4ede1">readChunkHeader</a> (dsf2flac_int8 *ident, dsf2flac_uint64 chunkStart, dsf2flac_uint64 *chunkSz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A little helper to read chunk headers info.  <a href="#a063c59ae6482ddeea78dba58ecd4ede1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a89d659fe0a525e0a03e1876c25a88ea7">readChunk_FRM8</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a FRM8 chunk  <a href="#a89d659fe0a525e0a03e1876c25a88ea7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a909062352e6585ae916664c1c8a7d25f">readChunk_FVER</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a FVER chunk  <a href="#a909062352e6585ae916664c1c8a7d25f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#aa44e2c2d63fe33971de91a4efb1d2cf4">readChunk_PROP</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a PROP chunk  <a href="#aa44e2c2d63fe33971de91a4efb1d2cf4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#acc23510c4c25dd2c193b3cb60fe67481">readChunk_FS</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a FS chunk  <a href="#acc23510c4c25dd2c193b3cb60fe67481"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#acf44ad3725919be5d7c40f7b88e603e8">readChunk_CHNL</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a CHNL chunk  <a href="#acf44ad3725919be5d7c40f7b88e603e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a32214df349efcae63ca90567c1a158b0">readChunk_CMPR</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a CMPR chunk  <a href="#a32214df349efcae63ca90567c1a158b0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#af2f2224b3254eba773b161ed7f40ffd7">readChunk_ABSS</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a ABSS chunk  <a href="#af2f2224b3254eba773b161ed7f40ffd7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#ad69a3a422be7af7c446f4e81e32e11f9">readChunk_DSD</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a DSD chunk  <a href="#ad69a3a422be7af7c446f4e81e32e11f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a99789ec134772aaf99dc2e835d74bf42">readChunk_DST</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a DST chunk  <a href="#a99789ec134772aaf99dc2e835d74bf42"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a4b50a1e6a7f2257b65b5de08e8f5f157">readChunk_DSTF</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a DSTF chunk  <a href="#a4b50a1e6a7f2257b65b5de08e8f5f157"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a3e19e08847aea08efc67261fa011e2e2">readChunk_COMT</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a COMT chunk  <a href="#a3e19e08847aea08efc67261fa011e2e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a5217bc15e14a02f4216eae7c7ec2ae95">readChunk_LSCO</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a LSCO chunk  <a href="#a5217bc15e14a02f4216eae7c7ec2ae95"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a1ef1be0f35351f200de73eb9cf79403e">readChunk_ID3</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a ID3 chunk  <a href="#a1ef1be0f35351f200de73eb9cf79403e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a25e61aafc227719c07bce721eaf34069">readChunk_DIIN</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a DIIN chunk  <a href="#a25e61aafc227719c07bce721eaf34069"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a6e209362e11526bba98dac0a8b0638aa">readChunk_EMID</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a EMID chunk  <a href="#a6e209362e11526bba98dac0a8b0638aa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a701c1854da0b19168b0f9eb8cca99600">readChunk_MARK</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a MARK chunk  <a href="#a701c1854da0b19168b0f9eb8cca99600"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a7284595c4aac6156228055bba478fb6d">readChunk_DSTI</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a DSTI chunk  <a href="#a7284595c4aac6156228055bba478fb6d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#a01da16bca83aacc51873c251b289c0e9">readChunk_FRTE</a> (dsf2flac_uint64 chunkStart)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">read data from a FRTE chunk  <a href="#a01da16bca83aacc51873c251b289c0e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#ad0487750b045ac83879c46e79d6b8412">dispComment</a> (DsdiffComment c)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be called to display a DsdiffComment to stdout.  <a href="#ad0487750b045ac83879c46e79d6b8412"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDsdiffFileReader.html#af5c36433aec32688e3831071a73c2de9">dispMarker</a> (DsdiffMarker m)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be called to display DsdiffMarker marker info to stdout.  <a href="#af5c36433aec32688e3831071a73c2de9"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This class extends dsdSampleReader providing access to dsf samples and other info from dsdff files. </p>
<p>Editied master files are supported, as is the undocumented ID3 chunk. DST compression is also supported. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa0adb8a6cd5619dc8504d0e7fb46d4cc"></a><!-- doxytag: member="DsdiffFileReader::DsdiffFileReader" ref="aa0adb8a6cd5619dc8504d0e7fb46d4cc" args="(char *filePath)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDsdiffFileReader.html#aa0adb8a6cd5619dc8504d0e7fb46d4cc">DsdiffFileReader::DsdiffFileReader</a> </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>filePath</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Class constructor. </p>
<p>filePath must be a valid dsdff file location. If there is an issue reading or loading the file then <a class="el" href="classDsdSampleReader.html#af38ca8dd15acd893825877655eaff344" title="Return false if the reader is invalid (format/file error for example).">isValid()</a> will be false. </p>

</div>
</div>
<a class="anchor" id="af5690204747c5f304ca42f59e634cb93"></a><!-- doxytag: member="DsdiffFileReader::~DsdiffFileReader" ref="af5690204747c5f304ca42f59e634cb93" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDsdiffFileReader.html#af5690204747c5f304ca42f59e634cb93">DsdiffFileReader::~DsdiffFileReader</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Class destructor. </p>
<p>Closes the file and frees the internal buffers. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a1a06abf0beea3efbedf16fbbf46efc74"></a><!-- doxytag: member="DsdiffFileReader::allocateBuffer" ref="a1a06abf0beea3efbedf16fbbf46efc74" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDsdSampleReader.html#a1a06abf0beea3efbedf16fbbf46efc74">DsdSampleReader::allocateBuffer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocates the circular buffers. </p>
<p>Child classes need to call this once they know the number of channels! </p>

</div>
</div>
<a class="anchor" id="a8c08e845b86f0b9f5a397b1469a98b5c"></a><!-- doxytag: member="DsdiffFileReader::allocateSampleBuffer" ref="a8c08e845b86f0b9f5a397b1469a98b5c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDsdiffFileReader.html#a8c08e845b86f0b9f5a397b1469a98b5c">DsdiffFileReader::allocateSampleBuffer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocate the buffer to hold samples. </p>

</div>
</div>
<a class="anchor" id="a4985ec156a185ee79da43eaceb5f78f7"></a><!-- doxytag: member="DsdiffFileReader::clearBuffer" ref="a4985ec156a185ee79da43eaceb5f78f7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDsdSampleReader.html#a4985ec156a185ee79da43eaceb5f78f7">DsdSampleReader::clearBuffer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear the buffers and fill with idleSample. </p>

</div>
</div>
<a class="anchor" id="ad0487750b045ac83879c46e79d6b8412"></a><!-- doxytag: member="DsdiffFileReader::dispComment" ref="ad0487750b045ac83879c46e79d6b8412" args="(DsdiffComment c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDsdiffFileReader.html#ad0487750b045ac83879c46e79d6b8412">DsdiffFileReader::dispComment</a> </td>
          <td>(</td>
          <td class="paramtype">DsdiffComment&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Can be called to display a DsdiffComment to stdout. </p>

</div>
</div>
<a class="anchor" id="a75c8838e87394622483a549e70a1ad6f"></a><!-- doxytag: member="DsdiffFileReader::dispFileInfo" ref="a75c8838e87394622483a549e70a1ad6f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDsdiffFileReader.html#a75c8838e87394622483a549e70a1ad6f">DsdiffFileReader::dispFileInfo</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Can be called to display some useful info to stdout. </p>

</div>
</div>
<a class="anchor" id="af5c36433aec32688e3831071a73c2de9"></a><!-- doxytag: member="DsdiffFileReader::dispMarker" ref="af5c36433aec32688e3831071a73c2de9" args="(DsdiffMarker m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDsdiffFileReader.html#af5c36433aec32688e3831071a73c2de9">DsdiffFileReader::dispMarker</a> </td>
          <td>(</td>
          <td class="paramtype">DsdiffMarker&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Can be called to display DsdiffMarker marker info to stdout. </p>

</div>
</div>
<a class="anchor" id="af89cd94df23fbc7a14f4693d41e559d9"></a><!-- doxytag: member="DsdiffFileReader::getBuffer" ref="af89cd94df23fbc7a14f4693d41e559d9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::circular_buffer&lt; dsf2flac_uint8 &gt; * <a class="el" href="classDsdSampleReader.html#af89cd94df23fbc7a14f4693d41e559d9">DsdSampleReader::getBuffer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns an array of circular buffers, one for each track. </p>
<p>Each circular buffer contains <a class="el" href="classDsdSampleReader.html#a4047cf0d1e5509d09954b844e57194b5" title="Returns the length of the buffers (the number of uint8 numbers, NOT the number of DSD samples)...">getBufferLength()</a> uint8 numbers. The DSD samples are packed into these uint8 numbers. The next uint8 set of 8 DSD samples is added into position 0 when <a class="el" href="classDsdSampleReader.html#a47dec63e6bd4cd9cf5235d8a4cbbe886" title="Step the reader forward by 8 DSD samples.">step()</a> is called. By default the buffer is filled with <a class="el" href="classDsdSampleReader.html#a57314cc6f55aa3b1302c4c6f2e1089d9" title="Return the idle tone used by this reader, by default the buffers are populated with this idle tone...">getIdleSample()</a>. </p>

</div>
</div>
<a class="anchor" id="a4047cf0d1e5509d09954b844e57194b5"></a><!-- doxytag: member="DsdiffFileReader::getBufferLength" ref="a4047cf0d1e5509d09954b844e57194b5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_uint32 <a class="el" href="classDsdSampleReader.html#a4047cf0d1e5509d09954b844e57194b5">DsdSampleReader::getBufferLength</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the length of the buffers (the number of uint8 numbers, NOT the number of DSD samples). </p>

</div>
</div>
<a class="anchor" id="a55a93bdd363ad0caf9cd53d118faaed0"></a><!-- doxytag: member="DsdiffFileReader::getErrorMsg" ref="a55a93bdd363ad0caf9cd53d118faaed0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classDsdSampleReader.html#a55a93bdd363ad0caf9cd53d118faaed0">DsdSampleReader::getErrorMsg</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a message explaining why the reader is invalid. </p>

</div>
</div>
<a class="anchor" id="a10bc171b055f01dbfd8fdc13c8f29e05"></a><!-- doxytag: member="DsdiffFileReader::getID3Tag" ref="a10bc171b055f01dbfd8fdc13c8f29e05" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ID3_Tag <a class="el" href="classDsdSampleReader.html#a10bc171b055f01dbfd8fdc13c8f29e05">DsdSampleReader::getID3Tag</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the ID3 tag of the first track in this reader. </p>
<p>Useful for when there is only a single track in the reader. </p>

</div>
</div>
<a class="anchor" id="a6156d23729436b5d861121576d684908"></a><!-- doxytag: member="DsdiffFileReader::getID3Tag" ref="a6156d23729436b5d861121576d684908" args="(dsf2flac_uint32 trackNum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ID3_Tag <a class="el" href="classDsdiffFileReader.html#a6156d23729436b5d861121576d684908">DsdiffFileReader::getID3Tag</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint32&#160;</td>
          <td class="paramname"><em>trackNum</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the ID3 tag corresponding to the provided track number. </p>

<p>Reimplemented from <a class="el" href="classDsdSampleReader.html#abf203468082beefa04e80ceacc6df426">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="a57314cc6f55aa3b1302c4c6f2e1089d9"></a><!-- doxytag: member="DsdiffFileReader::getIdleSample" ref="a57314cc6f55aa3b1302c4c6f2e1089d9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual dsf2flac_uint8 <a class="el" href="classDsdSampleReader.html#a57314cc6f55aa3b1302c4c6f2e1089d9">DsdSampleReader::getIdleSample</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the idle tone used by this reader, by default the buffers are populated with this idle tone. </p>

</div>
</div>
<a class="anchor" id="a944d14bf6a78cd224f029c48e5372ead"></a><!-- doxytag: member="DsdiffFileReader::getLength" ref="a944d14bf6a78cd224f029c48e5372ead" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_int64 <a class="el" href="classDsdiffFileReader.html#a944d14bf6a78cd224f029c48e5372ead">DsdiffFileReader::getLength</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the total number of DSD samples in the reader. </p>

<p>Implements <a class="el" href="classDsdSampleReader.html#abeac2f3086bbb590f403a17a9fad112b">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="a03a1ccf5fe2002951958b1a0315c0c17"></a><!-- doxytag: member="DsdiffFileReader::getLengthInSeconds" ref="a03a1ccf5fe2002951958b1a0315c0c17" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_float64 <a class="el" href="classDsdSampleReader.html#a03a1ccf5fe2002951958b1a0315c0c17">DsdSampleReader::getLengthInSeconds</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the total length of the reader in seconds. </p>

</div>
</div>
<a class="anchor" id="a0be5c607cc8210b628ae3cb33d2f1a3a"></a><!-- doxytag: member="DsdiffFileReader::getNumChannels" ref="a0be5c607cc8210b628ae3cb33d2f1a3a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_uint32 <a class="el" href="classDsdiffFileReader.html#a0be5c607cc8210b628ae3cb33d2f1a3a">DsdiffFileReader::getNumChannels</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of channels in the reader. </p>

<p>Implements <a class="el" href="classDsdSampleReader.html#ae70fe02d2c45eed47980e3fd47a5fd23">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="a3ddd8292bd0d2666009e44b7dd9d2474"></a><!-- doxytag: member="DsdiffFileReader::getNumTracks" ref="a3ddd8292bd0d2666009e44b7dd9d2474" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_uint32 <a class="el" href="classDsdiffFileReader.html#a3ddd8292bd0d2666009e44b7dd9d2474">DsdiffFileReader::getNumTracks</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of audio tracks in the reader. </p>

<p>Reimplemented from <a class="el" href="classDsdSampleReader.html#a59a12a45074ff35f40ea7632b4474b0d">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="aa4146b9597508d0d0cba9687cac10b0a"></a><!-- doxytag: member="DsdiffFileReader::getPosition" ref="aa4146b9597508d0d0cba9687cac10b0a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_int64 <a class="el" href="classDsdSampleReader.html#aa4146b9597508d0d0cba9687cac10b0a">DsdSampleReader::getPosition</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the current position of the reader in DSD samples. </p>
<p>This is the position of the first entry in the circular buffers. </p>

</div>
</div>
<a class="anchor" id="a482617bc01d3fd23d40ae5c6cccda769"></a><!-- doxytag: member="DsdiffFileReader::getPositionAsPercent" ref="a482617bc01d3fd23d40ae5c6cccda769" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_float64 <a class="el" href="classDsdSampleReader.html#a482617bc01d3fd23d40ae5c6cccda769">DsdSampleReader::getPositionAsPercent</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the current position of the reader as a percent of the total length. </p>

</div>
</div>
<a class="anchor" id="ac9602a1a4068718248603510360d5a69"></a><!-- doxytag: member="DsdiffFileReader::getPositionInSeconds" ref="ac9602a1a4068718248603510360d5a69" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_float64 <a class="el" href="classDsdSampleReader.html#ac9602a1a4068718248603510360d5a69">DsdSampleReader::getPositionInSeconds</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the current position of the reader in seconds. </p>

</div>
</div>
<a class="anchor" id="aea643e18182f246efa102ca0e22808c8"></a><!-- doxytag: member="DsdiffFileReader::getSamplingFreq" ref="aea643e18182f246efa102ca0e22808c8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_uint32 <a class="el" href="classDsdiffFileReader.html#aea643e18182f246efa102ca0e22808c8">DsdiffFileReader::getSamplingFreq</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the DSD sampling rate of this reader (Hz). </p>

<p>Implements <a class="el" href="classDsdSampleReader.html#a8dd5f7fa19f0d364fb32e8d956b7c807">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="a4c6eefc2cc805e63c14482602a896534"></a><!-- doxytag: member="DsdiffFileReader::getTrackEnd" ref="a4c6eefc2cc805e63c14482602a896534" args="(dsf2flac_uint32 trackNum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_uint64 <a class="el" href="classDsdiffFileReader.html#a4c6eefc2cc805e63c14482602a896534">DsdiffFileReader::getTrackEnd</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint32&#160;</td>
          <td class="paramname"><em>trackNum</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the end position of the specified track. </p>

<p>Reimplemented from <a class="el" href="classDsdSampleReader.html#af6f417791f38ba8140443b322bace86f">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="aae619f113c088885ab00befa2fcb9778"></a><!-- doxytag: member="DsdiffFileReader::getTrackStart" ref="aae619f113c088885ab00befa2fcb9778" args="(dsf2flac_uint32 trackNum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dsf2flac_uint64 <a class="el" href="classDsdiffFileReader.html#aae619f113c088885ab00befa2fcb9778">DsdiffFileReader::getTrackStart</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint32&#160;</td>
          <td class="paramname"><em>trackNum</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the start position of the specified track. </p>

<p>Reimplemented from <a class="el" href="classDsdSampleReader.html#a7acaaebbddc2d42e69fd999bd0d0c394">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="af38ca8dd15acd893825877655eaff344"></a><!-- doxytag: member="DsdiffFileReader::isValid" ref="af38ca8dd15acd893825877655eaff344" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdSampleReader.html#af38ca8dd15acd893825877655eaff344">DsdSampleReader::isValid</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return false if the reader is invalid (format/file error for example). </p>

</div>
</div>
<a class="anchor" id="a54998d3ac12b20f0b30c4e781d266b19"></a><!-- doxytag: member="DsdiffFileReader::latin1_to_utf8" ref="a54998d3ac12b20f0b30c4e781d266b19" args="(char *latin1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* <a class="el" href="classDsdSampleReader.html#a54998d3ac12b20f0b30c4e781d266b19">DsdSampleReader::latin1_to_utf8</a> </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>latin1</em></td><td>)</td>
          <td><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>convert latin1 encoded char into utf8. </p>

</div>
</div>
<a class="anchor" id="a307362407ad6cf451accb690132d8555"></a><!-- doxytag: member="DsdiffFileReader::msbIsPlayedFirst" ref="a307362407ad6cf451accb690132d8555" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a307362407ad6cf451accb690132d8555">DsdiffFileReader::msbIsPlayedFirst</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Describes the order that the samples are packed into the int8 buffer entries. </p>

<p>Implements <a class="el" href="classDsdSampleReader.html#afcf63d915fce58c33317f9b9e38aefc2">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="ae1167ce39c5e9b74d1c2a57536f497c4"></a><!-- doxytag: member="DsdiffFileReader::processTracks" ref="ae1167ce39c5e9b74d1c2a57536f497c4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDsdiffFileReader.html#ae1167ce39c5e9b74d1c2a57536f497c4">DsdiffFileReader::processTracks</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds the number, start and end points of the tracks in the file. </p>
<p>Must be called after the marker chunks have been read. </p>

</div>
</div>
<a class="anchor" id="af2f2224b3254eba773b161ed7f40ffd7"></a><!-- doxytag: member="DsdiffFileReader::readChunk_ABSS" ref="af2f2224b3254eba773b161ed7f40ffd7" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#af2f2224b3254eba773b161ed7f40ffd7">DsdiffFileReader::readChunk_ABSS</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a ABSS chunk </p>

</div>
</div>
<a class="anchor" id="acf44ad3725919be5d7c40f7b88e603e8"></a><!-- doxytag: member="DsdiffFileReader::readChunk_CHNL" ref="acf44ad3725919be5d7c40f7b88e603e8" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#acf44ad3725919be5d7c40f7b88e603e8">DsdiffFileReader::readChunk_CHNL</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a CHNL chunk </p>

</div>
</div>
<a class="anchor" id="a32214df349efcae63ca90567c1a158b0"></a><!-- doxytag: member="DsdiffFileReader::readChunk_CMPR" ref="a32214df349efcae63ca90567c1a158b0" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a32214df349efcae63ca90567c1a158b0">DsdiffFileReader::readChunk_CMPR</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a CMPR chunk </p>

</div>
</div>
<a class="anchor" id="a3e19e08847aea08efc67261fa011e2e2"></a><!-- doxytag: member="DsdiffFileReader::readChunk_COMT" ref="a3e19e08847aea08efc67261fa011e2e2" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a3e19e08847aea08efc67261fa011e2e2">DsdiffFileReader::readChunk_COMT</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a COMT chunk </p>

</div>
</div>
<a class="anchor" id="a25e61aafc227719c07bce721eaf34069"></a><!-- doxytag: member="DsdiffFileReader::readChunk_DIIN" ref="a25e61aafc227719c07bce721eaf34069" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a25e61aafc227719c07bce721eaf34069">DsdiffFileReader::readChunk_DIIN</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a DIIN chunk </p>

</div>
</div>
<a class="anchor" id="ad69a3a422be7af7c446f4e81e32e11f9"></a><!-- doxytag: member="DsdiffFileReader::readChunk_DSD" ref="ad69a3a422be7af7c446f4e81e32e11f9" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#ad69a3a422be7af7c446f4e81e32e11f9">DsdiffFileReader::readChunk_DSD</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a DSD chunk </p>

</div>
</div>
<a class="anchor" id="a99789ec134772aaf99dc2e835d74bf42"></a><!-- doxytag: member="DsdiffFileReader::readChunk_DST" ref="a99789ec134772aaf99dc2e835d74bf42" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a99789ec134772aaf99dc2e835d74bf42">DsdiffFileReader::readChunk_DST</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a DST chunk </p>

</div>
</div>
<a class="anchor" id="a4b50a1e6a7f2257b65b5de08e8f5f157"></a><!-- doxytag: member="DsdiffFileReader::readChunk_DSTF" ref="a4b50a1e6a7f2257b65b5de08e8f5f157" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a4b50a1e6a7f2257b65b5de08e8f5f157">DsdiffFileReader::readChunk_DSTF</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a DSTF chunk </p>

</div>
</div>
<a class="anchor" id="a7284595c4aac6156228055bba478fb6d"></a><!-- doxytag: member="DsdiffFileReader::readChunk_DSTI" ref="a7284595c4aac6156228055bba478fb6d" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a7284595c4aac6156228055bba478fb6d">DsdiffFileReader::readChunk_DSTI</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a DSTI chunk </p>

</div>
</div>
<a class="anchor" id="a6e209362e11526bba98dac0a8b0638aa"></a><!-- doxytag: member="DsdiffFileReader::readChunk_EMID" ref="a6e209362e11526bba98dac0a8b0638aa" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a6e209362e11526bba98dac0a8b0638aa">DsdiffFileReader::readChunk_EMID</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a EMID chunk </p>

</div>
</div>
<a class="anchor" id="a89d659fe0a525e0a03e1876c25a88ea7"></a><!-- doxytag: member="DsdiffFileReader::readChunk_FRM8" ref="a89d659fe0a525e0a03e1876c25a88ea7" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a89d659fe0a525e0a03e1876c25a88ea7">DsdiffFileReader::readChunk_FRM8</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a FRM8 chunk </p>

</div>
</div>
<a class="anchor" id="a01da16bca83aacc51873c251b289c0e9"></a><!-- doxytag: member="DsdiffFileReader::readChunk_FRTE" ref="a01da16bca83aacc51873c251b289c0e9" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a01da16bca83aacc51873c251b289c0e9">DsdiffFileReader::readChunk_FRTE</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a FRTE chunk </p>

</div>
</div>
<a class="anchor" id="acc23510c4c25dd2c193b3cb60fe67481"></a><!-- doxytag: member="DsdiffFileReader::readChunk_FS" ref="acc23510c4c25dd2c193b3cb60fe67481" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#acc23510c4c25dd2c193b3cb60fe67481">DsdiffFileReader::readChunk_FS</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a FS chunk </p>

</div>
</div>
<a class="anchor" id="a909062352e6585ae916664c1c8a7d25f"></a><!-- doxytag: member="DsdiffFileReader::readChunk_FVER" ref="a909062352e6585ae916664c1c8a7d25f" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a909062352e6585ae916664c1c8a7d25f">DsdiffFileReader::readChunk_FVER</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a FVER chunk </p>

</div>
</div>
<a class="anchor" id="a1ef1be0f35351f200de73eb9cf79403e"></a><!-- doxytag: member="DsdiffFileReader::readChunk_ID3" ref="a1ef1be0f35351f200de73eb9cf79403e" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a1ef1be0f35351f200de73eb9cf79403e">DsdiffFileReader::readChunk_ID3</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a ID3 chunk </p>

</div>
</div>
<a class="anchor" id="a5217bc15e14a02f4216eae7c7ec2ae95"></a><!-- doxytag: member="DsdiffFileReader::readChunk_LSCO" ref="a5217bc15e14a02f4216eae7c7ec2ae95" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a5217bc15e14a02f4216eae7c7ec2ae95">DsdiffFileReader::readChunk_LSCO</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a LSCO chunk </p>

</div>
</div>
<a class="anchor" id="a701c1854da0b19168b0f9eb8cca99600"></a><!-- doxytag: member="DsdiffFileReader::readChunk_MARK" ref="a701c1854da0b19168b0f9eb8cca99600" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a701c1854da0b19168b0f9eb8cca99600">DsdiffFileReader::readChunk_MARK</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a MARK chunk </p>

</div>
</div>
<a class="anchor" id="aa44e2c2d63fe33971de91a4efb1d2cf4"></a><!-- doxytag: member="DsdiffFileReader::readChunk_PROP" ref="aa44e2c2d63fe33971de91a4efb1d2cf4" args="(dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#aa44e2c2d63fe33971de91a4efb1d2cf4">DsdiffFileReader::readChunk_PROP</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>read data from a PROP chunk </p>

</div>
</div>
<a class="anchor" id="aef926427dbd6f49d3e6be519283c8ac1"></a><!-- doxytag: member="DsdiffFileReader::readChunkHeader" ref="aef926427dbd6f49d3e6be519283c8ac1" args="(dsf2flac_int8 *ident, dsf2flac_uint64 chunkStart)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#aef926427dbd6f49d3e6be519283c8ac1">DsdiffFileReader::readChunkHeader</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_int8 *&#160;</td>
          <td class="paramname"><em>ident</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A little helper to read chunk headers info. </p>

</div>
</div>
<a class="anchor" id="a063c59ae6482ddeea78dba58ecd4ede1"></a><!-- doxytag: member="DsdiffFileReader::readChunkHeader" ref="a063c59ae6482ddeea78dba58ecd4ede1" args="(dsf2flac_int8 *ident, dsf2flac_uint64 chunkStart, dsf2flac_uint64 *chunkSz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#aef926427dbd6f49d3e6be519283c8ac1">DsdiffFileReader::readChunkHeader</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_int8 *&#160;</td>
          <td class="paramname"><em>ident</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">dsf2flac_uint64&#160;</td>
          <td class="paramname"><em>chunkStart</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">dsf2flac_uint64 *&#160;</td>
          <td class="paramname"><em>chunkSz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A little helper to read chunk headers info. </p>

</div>
</div>
<a class="anchor" id="aa3242abb25a60ef60a3e1f20f7e69d38"></a><!-- doxytag: member="DsdiffFileReader::readNextBlock" ref="aa3242abb25a60ef60a3e1f20f7e69d38" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#aa3242abb25a60ef60a3e1f20f7e69d38">DsdiffFileReader::readNextBlock</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the next block of samples into the buffer. </p>

</div>
</div>
<a class="anchor" id="af5059434a5bcc0afe6dd3440a962b4da"></a><!-- doxytag: member="DsdiffFileReader::rewind" ref="af5059434a5bcc0afe6dd3440a962b4da" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDsdiffFileReader.html#af5059434a5bcc0afe6dd3440a962b4da">DsdiffFileReader::rewind</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the reader position back to the start of the DSD data. </p>
<p>Note that child classes implementing this method must call <a class="el" href="classDsdSampleReader.html#a4985ec156a185ee79da43eaceb5f78f7" title="Clear the buffers and fill with idleSample.">clearBuffer()</a>; </p>

<p>Implements <a class="el" href="classDsdSampleReader.html#a144883fdf0f2a4b270b97186bd86dbbb">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="a03be29bcbf7c1245280255b7a6be9d9c"></a><!-- doxytag: member="DsdiffFileReader::samplesAvailable" ref="a03be29bcbf7c1245280255b7a6be9d9c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#a03be29bcbf7c1245280255b7a6be9d9c">DsdiffFileReader::samplesAvailable</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns false if there are no more samples left in the reader. </p>

<p>Reimplemented from <a class="el" href="classDsdSampleReader.html#aaca5f3d971b87e0bf13995902bbdabe6">DsdSampleReader</a>.</p>

</div>
</div>
<a class="anchor" id="a5853c6883b69c0e7431393b3af217579"></a><!-- doxytag: member="DsdiffFileReader::setBufferLength" ref="a5853c6883b69c0e7431393b3af217579" args="(dsf2flac_uint32 bufferLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdSampleReader.html#a5853c6883b69c0e7431393b3af217579">DsdSampleReader::setBufferLength</a> </td>
          <td>(</td>
          <td class="paramtype">dsf2flac_uint32&#160;</td>
          <td class="paramname"><em>bufferLength</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the length of the buffers (the number of uint8 numbers, NOT the number of DSD samples). </p>
<p>Note that this will cause <a class="el" href="classDsdSampleReader.html#a144883fdf0f2a4b270b97186bd86dbbb" title="Set the reader position back to the start of the DSD data.">rewind()</a> to be called. </p>

</div>
</div>
<a class="anchor" id="aeea5846208fe880fd916dd0ddd74db6a"></a><!-- doxytag: member="DsdiffFileReader::step" ref="aeea5846208fe880fd916dd0ddd74db6a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDsdiffFileReader.html#aeea5846208fe880fd916dd0ddd74db6a">DsdiffFileReader::step</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Step the reader forward by 8 DSD samples. </p>
<p>This causes the next 8 DSD samples to be added into the front of the circular buffers (one uint8). </p>

<p>Implements <a class="el" href="classDsdSampleReader.html#a47dec63e6bd4cd9cf5235d8a4cbbe886">DsdSampleReader</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>dsdiff_file_reader.h</li>
<li>dsdiff_file_reader.cpp</li>
</ul>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Sun Oct 13 2013 22:00:19 for DSF2FLAC by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
